/**
 * 数据源定义
 */
// ////////////////////////////////////////////////////////////////////////////////////////////////////
var staff_proxy = new Ext.data.HttpProxy({
			url : "sendmsg.do?method=findPerson"
		});

var staff_message = new Ext.data.Record.create([{
			name : 'personid',
			mapping : 'person_id'
		}, {
			name : 'deptid',
			mapping : 'dept_id'
		}, {
			name : 'cardno',
			mapping : 'card_no'
		}, {
			name : 'personno',
			mapping : 'person_no'
		}, {
			name : 'personname',
			mapping : 'person_name'
		}, {
			name : 'persontype',
			mapping : 'person_type'
		}, {
			name : 'certname',
			mapping : 'cert_name'
		}, {
			name : 'certcode',
			mapping : 'cert_code'
		}, {
			name : 'duty',
			mapping : 'duty'
		}, {
			name : 'title',
			mapping : 'title'
		}, {
			name : 'nationality',
			mapping : 'nationality'
		}, {
			name : 'sex',
			mapping : 'sex'
		}, {
			name : 'birthday',
			mapping : 'birthday'
		}, {
			name : 'ismarry',
			mapping : 'is_marry'
		}, {
			name : 'nativeplace',
			mapping : 'nativeplace'
		}, {
			name : 'address',
			mapping : 'address'
		}, {
			name : 'residence',
			mapping : 'residence'
		}, {
			name : 'onworkdate',
			mapping : 'onwork_date'
		}, {
			name : 'offworkdate',
			mapping : 'offwork_date'
		}, {
			name : 'isdel',
			mapping : 'is_del'
		}, {
			name : 'remark',
			mapping : 'remark'
		}]);

var staff_reader = new Ext.data.JsonReader({}, staff_message);

staff_store = new Ext.data.Store({
			proxy : staff_proxy,
			reader : staff_reader
		});

staff_store.load({});

var staff_sm = new Ext.grid.CheckboxSelectionModel(); // 复选框列选择模型

var staff_cm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), staff_sm,
		{
			header : '员工编号',
			dataIndex : 'personno',
			width : 100
		}, {
			header : '员工姓名',
			dataIndex : 'personname',
			width : 100
		}, {
			header : '手机号码',
			dataIndex : 'remark', // 表中无电话号码字段，请用remark字段作为电话号码字段
			width : 100
		}, {
			header : '员工类型',
			dataIndex : 'persontype',
			width : 100
		}, {
			header : '职务',
			dataIndex : 'duty',
			width : 100
		}, {
			header : '性别',
			dataIndex : 'sex',
			width : 100,
			renderer : function(v) {
				if (v==1) {
					return "男";
				} else {
					return "女";
				}
			}
		}]);

staff_cm.defaultSortable = true;

// ////////////////////////////////////////////////////////////////////////////////////////////////////

var sendMessage = function(id) {

	Ext.QuickTips.init(); // 初始化提示信息

	var gird = new Ext.grid.GridPanel({
		region : 'center',
		id : 'info-grid',
		store : staff_store,
		cm : staff_cm,
		sm : staff_sm,
		trackMouseOver : false,
		loadMask : {
			msg : '加载中...'
		},
		viewConfig : {
			forceFit : true,// 当行大小变化时始终填充满
			enableRowBody : true,
			showPreview : true
			// 可以用两行tr来表示一行
		},
		tbar : [{
			text : '查询',
			icon : 'extjs/resources/images/yourtheme/tree/drop-yes.gif',
			cls : 'x-btn-text-icon',
			tooltip : {
				title : '查询',
				text : '按输入条件查询'
			},
			handler : function() {
				var qryForm = new Ext.form.FormPanel({
					width : 300,
					height : 100,
					plain : true,
					layout : 'form',
					defaultType : 'textfield',
					labelWidth : 100,
					baseCls : 'x-plain',
					buttonAlign : 'center',
					bodyStyle : 'padding:6px',
					items : [{
								fieldLabel : '员工姓名',
								width : 160,
								id : "sm_receivername",
								name : "txt_name",
								maxLength : 10,
								maxLengthText : '输入字符过长'
							}, {
								fieldLabel : '员工号码',
								width : 160,
								id : 'sm_receiverrnum',
								name : 'chk_telNo',
								maxLength : 12,
								maxLengthText : '输入字符过长'
							}

					],
					buttons : [{
						text : "确定",
						minWidth : 70,
						handler : function() {
							var receivernum = Ext.get("sm_receiverrnum").dom.value;             //收信人号码
							var receivername = Ext.get("sm_receivername").dom.value;            //收信人姓名
							staff_store.baseParams = {
								chk_telNo : receivernum,
								txt_name : receivername
							};
							staff_store.load({});
							qryWin.close();

						}
					}, {
						text : "取消",
						minWidth : 70,
						handler : function() {
							qryWin.close();
						}
					}]
				});
				var qryWin = new Ext.Window({
							title : "收信人查询",
							plain : true,
							iconCls : "addicon",
							resizable : false,// 不可以随意改变大小
							draggable : true,// 是否可以拖动
							collapsible : true, // 允许缩放条
							closeAction : 'close',
							closable : true,
							buttonAlign : "center",
							bodyStyle : "padding:10px 0 0 10px",
							items : [qryForm]
						});
				qryWin.show();
			}
		}, '', {
			text : '发送',
			icon : 'extjs/resources/images/yourtheme/dd/drop-add.gif',
			cls : 'x-btn-text-icon details',
			tooltip : {
				title : '清空',
				text : '清空所有信息'
			},
			handler : function() {
				var telNos = "";
				var msgContent0 = Ext.getCmp('inputmsg').getValue();
				var msgContent1=msgContent0.replace(/<br>/g,"");
				var msgContent = msgContent1.replace(/&nbsp;/g,"");
				Ext.MessageBox.alert("", msgContent);
				var gdc = Ext.getCmp('info-grid');
				var rsm = gdc.getSelectionModel();
				for (var i = gdc.getView().getRows().length - 1; i >= 0; i--) {
					if (rsm.isSelected(i)) {
						telNos += gdc.getStore().getAt(i).get('remark');
						telNos += ',';
					}
				}
				if (telNos == "") {
					Ext.MessageBox.alert("警告", "请选择收信人！");
					return;
				}
				if (msgContent == "") {11
					Ext.MessageBox.alert("警告", "请输入短信内容！");
					return;
				}
				if (msgContent.length > 50) { // 这里限定为短信内容长度上限为50，请根据数据库字段实际长度做出修改
					Ext.MessageBox.alert("警告", "输入短信内容过长！");
					return;
				}
				Ext.Ajax.request({
							url : 'sendmsg.do?method=sendMessage',
							method : 'post',
							params : {
								chk_telNo : telNos,
								txt_content : msgContent
							},
							success : function(response, config) {
								var result = Ext.util.JSON
										.decode(response.responseText);
								Ext.MessageBox.alert("结果", result.success);
							},
							failure : function(response, config) {
								var result = Ext.util.JSON
										.decode(response.responseText);
								Ext.MessageBox.alert("结果", result.failure);
							}
						});

			}
		}, '-', {
			pressed : true,
			enableToggle : true,
			iconCls : 'preview',
			text : '显示内容',
			tooltip : {
				title : '显示内容',
				text : '显示/隐藏 短信内容'
			},
			toggleHandler : function togglePreview(btn, pressed) {
				var preview = Ext.getCmp('msg_input');
				preview[pressed ? 'show' : 'hide']();
				preview.ownerCt.doLayout();
			}
		}, ' '],
		bbar : new Ext.Toolbar({
			buttons : [{
						text : '全选',
						handler : function() {
							var gdc = Ext.getCmp('info-grid');
							var rsm = gdc.getSelectionModel();
							rsm.selectAll();
						}
					}, '-', {
						text : '反选',
						handler : function() {
							var gdc = Ext.getCmp('info-grid')
							var rsm = gdc.getSelectionModel();
							for (var i = gdc.getView().getRows().length - 1; i >= 0; i--) {
								if (rsm.isSelected(i)) {
									rsm.deselectRow(i);
								} else {
									rsm.selectRow(i, true);
								}

							}
						}
					}]
		})
	});

	var panel = new Ext.Panel({
				id : id,
				layout : 'border',
				title : '短信群发',
				items : [gird, new Ext.form.FormPanel({
									id : 'msg_input',
									region : 'south',
									height : 150,
									title : '短信内容',
									layout : 'border',
									items : [new Ext.form.HtmlEditor({
												id : 'inputmsg',
												name : 'inputmsg',
												region : 'center'
											})]
								})]

			});

	return panel;

};